="333")筛选数据不准确,会晒出333以下的数据问题就发生在比较的时候,进行的是字符串大小的比较,直" />

mysql中三种比较字符串大小的方法

您所在的位置:网站首页 vb 字符串之间可以比较大小吗怎么写 mysql中三种比较字符串大小的方法

mysql中三种比较字符串大小的方法

2024-07-01 16:21| 来源: 网络整理| 查看: 265

项目中发现一个bug

SELECT points from table1 WHERE (JSON_EXTRACT(points,'$."27"')>="333")

筛选数据不准确,会晒出333以下的数据 问题就发生在比较的时候,进行的是字符串大小的比较, 直接进行字符串比较会发生数据不准确的问题,需要手动转型

1.通过在字符串后面加0实现比较

语法:ORDER BY ‘123’+0;

示例:

SELECT '123'+0>127; -- 结果为0,表示false SELECT '123'+0>12; -- 结果为1,表示true

2.使用CAST()函数比较

语法:ORDER BY CAST(‘123’ AS SIGNED);

示例:

SELECT CAST('123' AS SIGNED)>127; -- 结果为0,表示false SELECT CAST('123' AS SIGNED)>12; -- 结果为1,表示true

3.使用CONVERT()函数比较

语法:ORDER BY CONVERT(‘123’,SIGNED);

示例:

SELECT CONVERT('123',SIGNED)>127; -- 结果为0,表示false SELECT CONVERT('123',SIGNED)>12; -- 结果为1,表示true


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3